package irc;

import java.util.logging.Level;
import java.util.logging.Logger;

/**
 * Klasa Kanału inforacyjnego servera - singleton ze względu na to, że w całym połaczeniu
 * z jednym serwerem może być tylko jeden kanał, który odbiera informacje z serwera.
 * @author adrian
 * @since 1.07.2011
 */
public class ServerChannel extends Channel {
    
    private static ServerChannel instance = null;
    
    /**
     * Prywatny konstruktor
     */
    private ServerChannel(){
        name = "server";
    }

    @Override
    public void setName(String name) {
        try {
            throw new Exception("Nie można zmienić nazwy kanału serwera");
        } catch (Exception ex) {
            Logger.getLogger(ServerChannel.class.getName()).log(Level.SEVERE, null, ex);
        }
    }        
    
    /**
     * Zwraca instację serverchannel bo może być tylko jeden taki kanał w 
     * jednym połączeniu.
     * @return ServerChannel
     */
    public static ServerChannel getInstance(){
        if(instance == null){
            synchronized (ServerChannel.class){
                instance = new ServerChannel();
            }                        
        }
        return instance;
    }
    
}
